home *** CD-ROM | disk | FTP | other *** search
/ Collection of Internet / Collection of Internet.iso / infosrvr / doc / www_talk.arc / 000149_fkappe@fiicmds….tu-graz.ac.at _Thu Jun 25 14:26:08 1992.msg < prev    next >
Internet Message Format  |  1992-11-30  |  5KB

  1. Return-Path: <fkappe@fiicmds04.tu-graz.ac.at>
  2. Received: from dxmint.cern.ch by  nxoc01.cern.ch  (NeXT-1.0 (From Sendmail 5.52)/NeXT-2.0)
  3.     id AA00925; Thu, 25 Jun 92 14:26:08 MET DST
  4. Received: by dxmint.cern.ch (dxcern) (5.57/3.14)
  5.     id AA25968; Thu, 25 Jun 92 14:25:47 +0200
  6. Received: by iicm.tu-graz.ac.at (5.57/Ultrix3.0-C)
  7.     id AA25321; Thu, 25 Jun 92 14:25:18 +0200
  8. Date: Thu, 25 Jun 92 14:25:18 +0200
  9. From: fkappe@fiicmds04.tu-graz.ac.at (Frank Kappe)
  10. Message-Id: <9206251225.AA25321@iicm.tu-graz.ac.at>
  11. To: www-talk@nxoc01.cern.ch
  12. Subject: HTML DTD and related problems (rather long)
  13.  
  14. >>>>> On Wed, 24 Jun 92 12:15:52 CDT, Dan Connolly <connolly@pixel.convex.com> said:
  15.  
  16. >>But then this raises another issue: does WWW allow anchors within
  17. >>anchors?  I think not - in which case I could not use WWW anchors to
  18. >>both label a paragraph (e.g. for attaching an annotation) and a word
  19. >>within it (e.g. for definition).  This worries me quite a bit.  Nor
  20. >>can I attach multiple links to the same point (e.g. definitions of a
  21. >>word in multiple languages).
  22. >
  23. > This and other related questions (can I have lists within lists?)
  24. > are precisely the reason for using a well-defined structural markup
  25. > language governed by SGML processing rules.
  26.  
  27. > Right now we have no DTD for HTML, and the only answers lie in
  28. > the browser source code. The documentation "in the web" is too
  29. > vague. But I hardly think we want the browser source code to
  30. > be the definition of HTML.
  31.  
  32. The situation with anchors in SGML is even worse. In addition to the cases where
  33. you want to have anchors within lists, list items, headlines etc. and lists,
  34. list items, headlines etc. within anchors, you also have anchors within anchors.
  35. Actually, anchors within anchors look like this:
  36.  
  37. <BEGIN ANCHOR A>
  38. !
  39. !
  40. !   <BEGIN ANCHOR B>
  41. !   !
  42. !   !
  43. !   !
  44. !   <END ANCHOR B>
  45. !
  46. !
  47. <END ANCHOR A>
  48.  
  49. This case is trivial (you just allow anchors within anchors in the DTD).
  50. However, consider the case where you want to have a destination anchor marking,
  51. say, paragraphs 1 and 2, and another one marking 2 and 3:
  52.  
  53. <BEGIN ANCHOR A>
  54. !
  55. ! para 1
  56. !
  57. !   <BEGIN ANCHOR B>
  58. !                  !
  59. ! para 2           !
  60. !                  !
  61. <END ANCHOR A>     !
  62.                    !
  63.   para 3           !
  64.                    !
  65.     <END ANCHOR B>-+
  66.  
  67. This situation cannot be implemented with SGML Tags like <A ....>text</A>, as
  68. it is proposed in HTML. Also, I doubt that it is possible to construct an anchor
  69. spanning, e.g., a few items of list A and a few items of list B, because the
  70. SGML parser would implicitly close openened anchor tags when reaching </list>:
  71.  
  72. <list A>
  73.   <item>...
  74. <A .....>
  75.   <item>...
  76.   <item>...
  77. </list>
  78.  
  79. <list B>
  80.   <item>...
  81. </A>
  82.   <item>...
  83.   <item>...
  84. </list>
  85.  
  86. The reason why it is possible to construct such things using the NeXT-based WWW
  87. viewer/editor is simply that HTML is not SGML. Therefore it is impossible to
  88. specify a DTD for HTML (as Dan has already pointed out).
  89.  
  90. In our Hyper-G system that uses HTF, a SGML-based format similar to HTML, we
  91. overcome the anchor-nesting problem by specifying TWO tags for anchors: an
  92. anchor-start (<AS>) tag and an anchor-end (<AE>) tag with an additional ID
  93. attribute. So, the examples are coded like this:
  94.  
  95. <AS ID="A">
  96. para 1
  97. <AS ID="B">
  98. para 2
  99. <AE ID="A">
  100. para 3
  101. <AE ID="B">
  102.  
  103. and
  104.  
  105. <list A>
  106.   <item>...
  107. <AS ID="C">
  108.   <item>...
  109.   <item>...
  110. </list>
  111.  
  112. <list B>
  113.   <item>...
  114. <AE ID="C">
  115.   <item>...
  116.   <item>...
  117. </list>
  118.  
  119. which is perfectly legal in our DTD. I don't want to waste more internet
  120. bandwidth sending the DTD, but you may get it by anonymous ftp from
  121. iicm.tu-graz.ac.at in file pub/Hyper-G/sgml/hyper-g.dtd. There is also a
  122. corresponding style sheet as well as styles used to convert HTF to HTML and
  123. LateX with a stand-alone SGML parser. 
  124.  
  125. Let me say one final word about anchors: In my (and others) opinion, it is
  126. generally not a good idea to store anchors (or even links) in documents. This
  127. requires a modification of the document whenever an anchor is
  128. inserted/modified/deleted and is problematic in multi-user environments with
  129. private links, etc. Rather, the links should be stored and manipulated in a
  130. seperate link database (like in Intermedia and also in Hyper-G). This also
  131. allows for backwards-tracing of links, which is essential for maintaining the
  132. integrity of the hypertext and providing a graphical overview of the hypertext
  133. to the users.
  134.  
  135. However, in certain circumstances (like document modification) it is convenient
  136. to supply the anchor information with the document. That is the reason why it's
  137. in the DTD.
  138.  
  139. -----------------------------------------------------------------------------
  140. Frank M. Kappe                                      fkappe@iicm.tu-graz.ac.at
  141. Institute for Information Processing                     Fax: ++43 316 824394
  142. Technical University Graz, Austria           "Sorry, no kangaroos in Austria"
  143. -----------------------------------------------------------------------------